iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
生成式 AI

Gemini 多模態大型語言模型大小事系列 第 8

Gemini 多模態大型語言模型大小事 Day8 - 運用 Gemini API 探索視覺功能

  • 分享至 

  • xImage
  •  

前言

    程式環境都會用colab 來執行程式,如果要在其他環境執行,請自行修改哦

colab 事前準備:設定專案和 API 金鑰
載入gemini

#pip install -q -U google-generativeai
import google.generativeai as genai

API 金鑰

from google.colab import userdata
API_KEY=userdata.get('GOOGLE_API_KEY')

#genai.configure(api_key="YOUR_API_KEY")

# Configure the client library by providing your API key.
genai.configure(api_key=API_KEY)

運用 Gemini API 探索視覺功能

Gemini API 可以對傳遞的圖片和影片進行推論。通過時 圖片、一組圖片或影片,Gemini 就能:

  • 說明或回答內容相關問題
  • 提供內容的摘要
  • 從內容推斷

使用 File API 上傳圖片檔

!curl -o jetpack.jpg https://storage.googleapis.com/generativeai-downloads/images/jetpack.jpg
!curl -o piranha.jpg https://storage.googleapis.com/generativeai-downloads/images/piranha.jpg
!curl -o firefighter.jpg https://storage.googleapis.com/generativeai-downloads/images/firefighter.jpg
# Upload the file and print a confirmation.
sample_file = genai.upload_file(path="jetpack.jpg",
                            display_name="Jetpack drawing")

print(f"Uploaded file '{sample_file.display_name}' as: {sample_file.uri}")

驗證圖片檔上傳並取得中繼資料

file = genai.get_file(name=sample_file.name)
print(f"Retrieved file '{file.display_name}' as: {sample_file.uri}")

使用上傳的圖片和文字做為提示

gemini-1.5-pro

# Choose a Gemini model.
model = genai.GenerativeModel(model_name="gemini-1.5-pro")

# Prompt the model with text and the previously uploaded image.
response = model.generate_content([sample_file, "描述如何製造該產品。"])

markdown.markdown(">" + response.text)

回答 markdown

<blockquote>
<p>這是一個噴射背包的設計圖,以下是製造說明:</p>
</blockquote>
<p><strong>外觀和功能:</strong></p>
<ol>
<li><strong>背包外型:</strong>設計成普通背包的樣子,輕便且不引人注目。</li>
<li><strong>尺寸:</strong>能夠容納 18 吋筆記型電腦。</li>
<li><strong>背帶:</strong>加厚設計,提供舒適的背負體驗。</li>
</ol>
<p><strong>動力系統:</strong></p>
<ol>
<li><strong>推進器:</strong>底部裝有可伸縮的推進器,提供升力。</li>
<li><strong>動力來源:</strong>採用蒸汽動力系統,環保清潔。</li>
<li><strong>電池續航:</strong>電池續航力達 15 分鐘。</li>
</ol>
<p><strong>其他功能:</strong></p>
<ol>
<li><strong>USB-C 充電:</strong>方便為電子設備充電。</li>
</ol>
<p><strong>製造流程:</strong></p>
<ol>
<li><strong>設計和研發:</strong>根據設計圖進行產品的詳細設計,包括材料選擇、結構設計、動力系統設計等。</li>
<li><strong>材料準備:</strong>採購製造背包所需的各種材料,例如:輕便耐用的背包面料、推進器材料、蒸汽動力系統組件、電池等。</li>
<li><strong>加工和組裝:</strong></li>
<li>根據設計圖紙,加工製作背包的各個部件。</li>
<li>將推進器、蒸汽動力系統、電池等組件安裝到背包底部。</li>
<li>將加厚背帶縫合到背包上,確保舒適性和安全性。</li>
<li><strong>測試和調試:</strong>對組裝好的噴射背包進行嚴格的測試,確保其功能正常、安全可靠。</li>
<li><strong>品質檢驗和包裝:</strong>通過品質檢驗的產品進行包裝,準備上市銷售。</li>
</ol>
<p><strong>注意事項:</strong></p>
<ul>
<li>在設計和製造過程中,需要特別關注安全性,確保推進器和蒸汽動力系統的穩定可靠。</li>
<li>電池續航力是一個需要克服的挑戰,可以考慮採用更高效的電池技術或其他動力方案。</li>
</ul>
<p>總而言之,要製造出實用的噴射背包,需要結合多學科的知識和技術,並進行嚴謹的設計、製造和測試。 </p>

上傳一或多個儲存在本機的圖片檔

import PIL.Image

sample_file_2 = PIL.Image.open('piranha.jpg')
sample_file_3 = PIL.Image.open('firefighter.jpg')

使用多張圖片提示

# Choose a Gemini model.
model = genai.GenerativeModel(model_name="gemini-1.5-pro")

prompt = "寫一段廣告順口溜,展示第一張圖片中的產品如何解決後兩張圖片中顯示的問題。"

response = model.generate_content([prompt, sample_file, sample_file_2, sample_file_3])

markdown.markdown(">" + response.text)

回答 markdown

<blockquote>
<p>被鯊魚困住?還是貓咪受困?
生活給你檸檬時,就飛過去吧!</p>
</blockquote>
<p>使用噴射背包,問題迎刃而解,
這款背包動力十足,外觀時尚。
環保的動力,讓你翱翔天際,
超長的電池續航力,讓你永不放棄。</p>
<p>加墊肩帶,舒適無比,
USB 充電功能,隨時補充電力。
別再猶豫,這款背包非你莫屬,
噴射背包,成就非凡自我!</p>

取得物件的定界框

# Choose a Gemini model.
model = genai.GenerativeModel(model_name="gemini-1.5-pro")

prompt = "返回食人魚的邊界框。 \n [ymin, xmin, ymax, xmax]"
response = model.generate_content([sample_file_2, prompt])

print(response.text)

回答

[612, 504, 701, 618]

上一篇
Gemini 多模態大型語言模型大小事 Day7 - 瞭解 Gemini API 的文件處理功能
下一篇
Gemini 多模態大型語言模型大小事 Day9 - 探索 Gemini API 的音訊功能
系列文
Gemini 多模態大型語言模型大小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言